package in.rob.client.base;
import in.lib.Constants;
import in.lib.manager.SettingsManager;
import in.rob.client.MainApplication;
import in.rob.client.R;
import java.util.Locale;
import lombok.Getter;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;
import com.google.analytics.tracking.android.EasyTracker;
public class RobinActivity extends ActionBarActivity
{
/**
* Application instance context. Use this for the most part
*/
@Getter private Context context;
protected static void initActionBar(final ActionBarActivity ctx)
{
ctx.getSupportActionBar().setCustomView(R.layout.action_bar);
ctx.getSupportActionBar().setDisplayShowCustomEnabled(true);
ctx.getSupportActionBar().setDisplayShowHomeEnabled(false);
// sliding menu custom toggle
ImageButton upBtn = (ImageButton)ctx.getSupportActionBar().getCustomView().findViewById(R.id.up_button);
upBtn.setOnClickListener(new OnClickListener()
{
@Override public void onClick(View v)
{
if (v.getId() == R.id.up_button)
{
ctx.finish();
return;
}
}
});
}
/**
* @return Gets the base 64 rehashable id of the device
*/
public String getDeviceId()
{
return ((MainApplication)getApplication()).getDeviceId();
}
@Override public void setTitle(CharSequence title)
{
((TextView)getSupportActionBar().getCustomView().findViewById(R.id.title)).setText(title);
}
// common stuff shared between all activities (eg Refresh after settings)
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.context = this;
String styleName = SettingsManager.getThemeName();
int styleRes = getResources().getIdentifier(styleName, "style", getPackageName());
try
{
setTheme(styleRes);
}
catch (Exception e)
{
setTheme(R.style.DefaultLight);
}
setLocale();
RobinActivity.initActionBar(this);
}
public void setLocale()
{
String languageToLoad = SettingsManager.getLocale();
if (TextUtils.isEmpty(languageToLoad))
{
languageToLoad = getSharedPreferences(getPackageName(), Context.MODE_PRIVATE).getString(Constants.PREFS_DEFAULT_LOCALE, "en");
}
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Constants.RESULT_REFRESH)
{
setResult(Constants.RESULT_REFRESH, data);
}
}
@Override public boolean onKeyLongPress(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_MENU)
{
//startActivity(new Intent(this, SearchActivity.class));
return true;
}
return super.onKeyLongPress(keyCode, event);
}
@Override public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_MENU)
{
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override protected void onStart()
{
super.onStart();
if (SettingsManager.isAnalyticsEnabled())
{
EasyTracker.getInstance().activityStart(this);
}
}
@Override protected void onStop()
{
super.onStop();
if (SettingsManager.isAnalyticsEnabled())
{
EasyTracker.getInstance().activityStop(this);
}
}
}